package com.shan.service.serviceImpl;


import com.shan.dao.UserDao;
import com.shan.domain.User;
import com.shan.exception.OtherThingsException;
import com.shan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Created by Administrator on 2016/9/25.
 */
@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;  //注入依赖
    @Transactional
    /**
     * 使用注解控制事务方法的优点
     * 1：开发团队达成一致的约定，明确标注事务方法的编码规范
     * 2：保证事务方法的执行时间尽可能短，不要穿插其他网络操作 如HTTP操作或者剥离事务外部方法
     * 3：不是所有的方法都需要事务，如果有一条修改操作 只读操作 不需要事务控制
     */
    /**
     * 添加用户，一般来说需要检查用户为空、用户名为空、密码为空
     */
    public void add(User user) throws OtherThingsException {
        System.out.println("打印传进来的user值"+user);
        int result = 0; //受影响的行数默认为0
        try {
            result = userDao.add(user);
        } catch (Exception e) {
            System.out.println("添加用户失败!");
            //其他用户添加失败异常
            throw new OtherThingsException(e);
        }
        if (result > 0)
            System.out.println("添加用户成功");
    }

    public List<User> findAll(int pageNum, int pageSize) {
        return null;
    }

    /**
     * 查找用户
     *
     * @param user 用户bean
     * @throws Exception
     */
    public User findUser(User user) {
        return userDao.findOneById(user.getLoginId());
    }

    public void updateLoginSession(String sessionId, String loginId) {
        userDao.updateLoginSession(sessionId, loginId);
    }

}
